An important factor in providing computer applications is the ability to update the functionality of the computer programs. New versions of the same computer programs are released on a regular basis. However, the continual release and update of computer applications tends to deter from the user experience in using the computer applications.
The most common method for updating a computer application is by recompiling or rewriting the computer application to change the operation of the computer application as desired. However, this update process consumes a user's time by forcing the user to update the computer application or purchase a new version of the computer application to be installed.
Another method for altering the operation of a computer program is to change the interaction of the operating system with the computer program. Functions within the kernel of the operating system may be changed such that when the computer application makes use of those functions, the operation of the computer application is also changed. However, changing the kernel for execution of the computer application consumes processing time since the kernel will need to be returned to its original state for other computer applications executed on a computing device.